数字滤波器的频率响应 |
您所在的位置:网站首页 › matlab 将0至2π之间的 › 数字滤波器的频率响应 |
freqz 数字滤波器的频率响应 全页折叠 语法[h,w] = freqz(b,a,n)[h,w] = freqz(sos,n)[h,w] = freqz(d,n)[h,w] = freqz(___,n,'whole')[h,f] = freqz(___,n,fs)[h,f] = freqz(___,n,'whole',fs)h = freqz(___,w)h = freqz(___,f,fs)freqz(___)说明示例 [h,w] = freqz(b,a,n) 返回数字滤波器的 n 点频率响应向量 h 和对应的角频率向量 w,滤波器的传递函数系数分别存储在 b 和 a 中。 示例 [h,w] = freqz(sos,n) 返回与二阶节矩阵 sos 对应的 n 点复频率响应。 示例 [h,w] = freqz(d,n) 返回数字滤波器 d 的 n 点复频率响应。 [h,w] = freqz(___,n,'whole') 返回整个单位圆周围 n 个采样点的频率响应。 [h,f] = freqz(___,n,fs) 返回数字滤波器的频率响应向量 h 和对应的物理频率向量 f,该数字滤波器经过设计,可以对以速率 fs 采样的信号进行滤波。 [h,f] = freqz(___,n,'whole',fs) 返回介于 0 与 fs 之间的 n 个点的频率向量。 h = freqz(___,w) 返回以 w 中提供的归一化频率计算的频率响应向量 h。 h = freqz(___,f,fs) 返回以 f 中提供的物理频率计算的频率响应向量 h。 示例 不带输出参数的 freqz(___) 用于绘制滤波器的频率响应。 示例全部折叠 传递函数的频率响应打开实时脚本计算并显示由以下传递函数描述的三阶 IIR 低通滤波器的幅值响应: H(z)=0.05634(1+z-1)(1-1.0166z-1+z-2)(1-0.683z-1)(1-1.4461z-1+0.7957z-2). 将分子和分母表示为多项式卷积。求分布在整个单位圆上的 2001 个点上的频率响应。 b0 = 0.05634; b1 = [1 1]; b2 = [1 -1.0166 1]; a1 = [1 -0.683]; a2 = [1 -1.4461 0.7957]; b = b0*conv(b1,b2); a = conv(a1,a2); [h,w] = freqz(b,a,'whole',2001);绘制以分贝表示的幅值响应。 plot(w/pi,20*log10(abs(h))) ax = gca; ax.YLim = [-100 20]; ax.XTick = 0:.5:2; xlabel('Normalized Frequency (\times\pi rad/sample)') ylabel('Magnitude (dB)')二阶节的频率响应打开实时脚本计算并显示由以下传递函数描述的三阶 IIR 低通滤波器的幅值响应: H(z)=0.05634(1+z-1)(1-1.0166z-1+z-2)(1-0.683z-1)(1-1.4461z-1+0.7957z-2). 用二阶节表示传递函数。求分布在整个单位圆上的 2001 个点上的频率响应。 b0 = 0.05634; b1 = [1 1]; b2 = [1 -1.0166 1]; a1 = [1 -0.683]; a2 = [1 -1.4461 0.7957]; sos1 = [b0*[b1 0] [a1 0]]; sos2 = [b2 a2]; [h,w] = freqz([sos1;sos2],'whole',2001);绘制以分贝表示的幅值响应。 plot(w/pi,20*log10(abs(h))) ax = gca; ax.YLim = [-100 20]; ax.XTick = 0:.5:2; xlabel('Normalized Frequency (\times\pi rad/sample)') ylabel('Magnitude (dB)')FIR 滤波器的频率响应打开实时脚本使用 β=8 的凯塞窗设计 80 阶 FIR 低通滤波器。指定归一化截止频率为 0.5π 弧度/采样点。显示滤波器的幅值和相位响应。 b = fir1(80,0.5,kaiser(81,8)); freqz(b,1)使用 designfilt 设计相同的滤波器。显示其幅值和相位响应。 d = designfilt("lowpassfir",FilterOrder=80, ... CutoffFrequency=0.5,Window={"kaiser",8}); freqz(d)FIR 带通滤波器的频率响应打开实时脚本设计一个 FIR 带通滤波器,通带在 0.35π 和 0.8π 弧度/采样点之间,波纹为 3 dB。第一个阻带是从 0 到 0.1π 弧度/采样点,衰减为 40 dB。第二个阻带是从 0.9π 弧度/采样点到奈奎斯特频率,衰减为 30 dB。计算频率响应。同时以线性单位和分贝绘制其幅值。突出显示通带。 sf1 = 0.1; pf1 = 0.35; pf2 = 0.8; sf2 = 0.9; pb = linspace(pf1,pf2,1e3)*pi; bp = designfilt('bandpassfir', ... 'StopbandAttenuation1',40, 'StopbandFrequency1',sf1,... 'PassbandFrequency1',pf1,'PassbandRipple',3,'PassbandFrequency2',pf2, ... 'StopbandFrequency2',sf2,'StopbandAttenuation2',30); [h,w] = freqz(bp,1024); hpb = freqz(bp,pb); subplot(2,1,1) plot(w/pi,abs(h),pb/pi,abs(hpb),'.-') axis([0 1 -1 2]) legend('Response','Passband','Location','South') ylabel('Magnitude') subplot(2,1,2) plot(w/pi,db(h),pb/pi,db(hpb),'.-') axis([0 1 -60 10]) xlabel('Normalized Frequency (\times\pi rad/sample)') ylabel('Magnitude (dB)')输入参数全部折叠 b, a — 传递函数系数 向量传递函数系数,指定为向量。用 b 和 a 将传递函数表示为 H(z)=B(z)A(z)=b1+b2z−1⋯+bnz−(n−1)+bn+1z−na1+a2z−1⋯+amz−(m−1)+am+1z−m 示例: b = [1 3 3 1]/6 和 a = [3 0 1 0]/3 用于指定归一化 3 dB 频率为 0.5π 弧度/采样点的三阶巴特沃斯滤波器。 数据类型: double | single 复数支持: 是 n — 计算点数 512 (默认) | 正整数标量计算点数,指定为不小于 2 的正整数标量。当 n 不存在时,它默认为 512。为了获得最佳效果,请将 n 设置为大于滤波器阶数的值。 sos — 二阶节系数 矩阵二阶节系数,指定为矩阵。sos 是 K×6 矩阵,其中节数 K 必须大于或等于 2。如果节数小于 2,该函数将输入视为分子向量。sos 的每行对应于二阶 (biquad) 滤波器的系数。sos 的第 i 行对应于 [bi(1) bi(2) bi(3) ai(1) ai(2) ai(3)]。 示例: s = [2 4 2 6 0 2;3 3 0 6 0 0] 用于指定归一化 3 dB 频率为 0.5π 弧度/采样点的三阶巴特沃斯滤波器。 数据类型: double | single 复数支持: 是 d — 数字滤波器 digitalFilter 对象数字滤波器,指定为 digitalFilter 对象。使用 designfilt 根据频率响应设定生成数字滤波器。 示例: d = designfilt('lowpassiir','FilterOrder',3,'HalfPowerFrequency',0.5) 用于指定归一化 3 dB 频率为 0.5π 弧度/采样点的三阶巴特沃斯滤波器。 fs — 采样率 正标量采样率,指定为正标量。当时间单位为秒时,fs 以赫兹表示。 数据类型: double w — 角频率 向量角频率,指定为向量并以弧度/采样点表示。w 必须至少包含两个元素,否则该函数会将其解释为 n。w = π 对应于奈奎斯特频率。 f — 频率 向量频率,指定为向量。f 必须至少包含两个元素,否则该函数会将其解释为 n。当时间单位为秒时,f 以赫兹表示。 数据类型: double 输出参数全部折叠 h — 频率响应 向量频率响应,以向量形式返回。如果指定 n,则 h 的长度为 n。如果未指定 n,或指定 n 为空向量,则 h 的长度为 512。 如果 freqz 的输入是单精度值,则该函数使用单精度算术运算计算频率响应。输出 h 是单精度值。 w — 角频率 向量角频率,以向量形式返回。w 值的范围是从 0 到 π。如果在输入中指定 'whole',则 w 中的值的范围是从 0 到 2π。如果指定 n,则 w 的长度为 n。如果未指定 n,或指定 n 为空向量,则 w 的长度为 512。 f — 频率 向量频率,以单位为赫兹的向量形式返回。f 的值的范围是从 0 到 fs/2 Hz。如果在输入中指定 'whole',则 f 中的值的范围是从 0 到 fs Hz。如果指定 n,则 f 的长度为 n。如果未指定 n,或指定 n 为空向量,则 f 的长度为 512。 算法数字滤波器的频率响应可以解释为在 z = ejω [1] 处对传递函数进行求值。 freqz 根据您指定的(实数或复数)分子和分母多项式确定传递函数,并返回数字滤波器的复频率响应 H(ejω)。频率响应在您使用的语法所确定的采样点处计算。 freqz 通常使用 FFT 算法来计算频率响应,但前提是您不提供频率向量作为输入参数。它将频率响应计算为变换后的分子和分母系数之比,并用零填充至所需长度。 当您提供频率向量作为输入时,freqz 在每个频率点处计算多项式,并将分子响应除以分母响应。该函数使用霍纳方法计算多项式。 参考[1] Oppenheim, Alan V., Ronald W. Schafer, and John R. Buck. Discrete-Time Signal Processing. 2nd Ed. Upper Saddle River, NJ: Prentice Hall, 1999. 扩展功能C/C++ 代码生成 使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。用法说明和限制:
如果 freqz 的第一个输入在编译时是可变大小矩阵,则它在运行时不能变为向量或空数组。 如果输入 n 在编译时大小可变,则它在运行时不能变为标量或空数组。 版本历史记录在 R2006a 之前推出 全部展开 R2023a: 使用创建绘图实时编辑器任务可视化函数输出现在,您可以使用创建绘图实时编辑器任务以交互方式显示 freqz 的输出。您可以选择不同图类型并设置可选参数。该任务还会自动生成代码,这些代码成为您的实时脚本的一部分。 另请参阅abs | angle | designfilt | digitalFilter | fft | filter | freqs | impz | invfreqs | logspace |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |